package com.battery.system.domain;

import com.battery.common.annotation.Excel;
import com.battery.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 积分兑换订单对象 ws_points_convert
 * 
 * @author battery
 * @date 2021-02-22
 */
public class WsPointsConvert extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private String id;

    /** 平台-项目ID */
    @Excel(name = "平台-项目ID")
    private String projectId;

    /** 直营合作商ID */
    @Excel(name = "直营合作商ID")
    private String partnerId;

    /** 积分兑换方  0 平台 1 其他合作商 */
    @Excel(name = "积分兑换方  0 平台 1 其他合作商")
    private Integer convertType;

    /** 积分兑换方ID (平台ID 或 其他合作商ID) */
    @Excel(name = "积分兑换方ID (平台ID 或 其他合作商ID)")
    private String convertId;

    /** 地址ID */
    @Excel(name = "地址ID")
    private String addressId;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 审批进度0 未审批1 待发货2 已发货3 已拒绝 */
    @Excel(name = "审批进度0 未审批1 待发货2 已发货3 已拒绝")
    private Long status;

    /** 审批通过时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审批通过时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approvalTime;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliveryTime;

    private BigDecimal totalAmount;

    private BigDecimal realPayAmount;

    private BigDecimal postAmount;

    private BigDecimal discountAmount;

    private BigDecimal payAmount;

    private String outTradeNo;

    private String transactionId;

    private String payTime;

    private Integer payStatus;

    private String fullName;

    private String fullPhone;

    private String trueName;

    private String phone;

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getPayTime() {
        return payTime;
    }

    public void setPayTime(String payTime) {
        this.payTime = payTime;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public String getFullPhone() {
        return fullPhone;
    }

    public void setFullPhone(String fullPhone) {
        this.fullPhone = fullPhone;
    }

    public String getTrueName() {
        return trueName;
    }

    public void setTrueName(String trueName) {
        this.trueName = trueName;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    private List<WsPointsConvertItems> list;

    public List<WsPointsConvertItems> getList() {
        return list;
    }

    public void setList(List<WsPointsConvertItems> list) {
        this.list = list;
    }

    public String getFullName() {
        return fullName;
    }

    public void setFullName(String fullName) {
        this.fullName = fullName;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getRealPayAmount() {
        return realPayAmount;
    }

    public void setRealPayAmount(BigDecimal realPayAmount) {
        this.realPayAmount = realPayAmount;
    }

    public BigDecimal getPostAmount() {
        return postAmount;
    }

    public void setPostAmount(BigDecimal postAmount) {
        this.postAmount = postAmount;
    }

    public BigDecimal getDiscountAmount() {
        return discountAmount;
    }

    public void setDiscountAmount(BigDecimal discountAmount) {
        this.discountAmount = discountAmount;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }
    public void setPartnerId(String partnerId) 
    {
        this.partnerId = partnerId;
    }

    public String getPartnerId() 
    {
        return partnerId;
    }
    public void setConvertType(Integer convertType) 
    {
        this.convertType = convertType;
    }

    public Integer getConvertType() 
    {
        return convertType;
    }
    public void setConvertId(String convertId) 
    {
        this.convertId = convertId;
    }

    public String getConvertId() 
    {
        return convertId;
    }
    public void setAddressId(String addressId) 
    {
        this.addressId = addressId;
    }

    public String getAddressId() 
    {
        return addressId;
    }

    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }
    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }
    public void setApprovalTime(Date approvalTime) 
    {
        this.approvalTime = approvalTime;
    }

    public Date getApprovalTime() 
    {
        return approvalTime;
    }
    public void setDeliveryTime(Date deliveryTime) 
    {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime() 
    {
        return deliveryTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("partnerId", getPartnerId())
            .append("convertType", getConvertType())
            .append("convertId", getConvertId())
            .append("addressId", getAddressId())
            .append("remarks", getRemarks())
            .append("status", getStatus())
            .append("approvalTime", getApprovalTime())
            .append("deliveryTime", getDeliveryTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
